//
//  Double+Extension.swift
//  SwiftProject
//
//  Created by qindong on 2021/3/12.
//

import Foundation

extension Double {
    // MARK: - double类型处理精度之后返回string minDigits小数点后最少几位 maxDigits小数点后最多几位
    func formatterStringWith(_ minDigits : Int = 0, _ maxDigits : Int = 2) -> String {
        let formatter = NumberFormatter()
        formatter.minimumFractionDigits = minDigits
        formatter.maximumFractionDigits = maxDigits
        return formatter.string(from: NSNumber(value: self))!
    }
    
    func transformTenThousand(_ string : String) -> String {
        if self > 10000 {
            return (self / 10000).formatterStringWith() + string
        } else {
            return formatterStringWith()
        }
    }

    // MARK: - double强制转换精度 默认2位
    func doublePrecision(_ precision : Int = 2) -> String {
        if precision > 0 && self == 0.0 {
            return "0"
        }
        return String(format: "%.\(precision)f", self)
    }

    /// 距离转换 输出 例： 80m 或 11.2km
    var transformDistance : String {
        if self < 1000 {
            return String(format: "%.0fm", self)
        } else {
            return String(format: "%.1fkm", self / 1000)
        }
    }
}
